window.onload = function (){
    fullTable(emList);
}

/**
 * 将数组内容填充表格数据
 */
function fullTable(array){
    let str ="";
    array.forEach(n =>{
        str += `<tr><td>${n.code}</td><td>${n.name}</td>
                        <td>${n.money}</td><td>${n.sex}</td>
                        <td><input type="button" value="删除" onclick="del(${n.code})">
                       <input type="button" value="修改" onclick="findById(${n.code})"></td></tr>`;
    });
    $("data").innerHTML=str;
}

/**
 * 删除
 * @param code
 */
function del(code){
    //找到指定编号的下标
    let index = emList.findIndex(n => n.code==code);
    emList.splice(index,1);
    fullTable(emList)
}


function findByName(){
//得到文本框内容
    var nameStr = $("nameTxt").value;
    var newList = emList.filter(n => n.name.indexOf(nameStr)!=-1);
    fullTable(newList);
}

function showAddDiv(){
    $("addDiv").style.visibility="visible";

}
/**
 * 添加
 */
function add(){

    var obj = {code:$("codeTxt").value,name:$("emNameTxt").value,
    money:$("moneyTxt").value,sex:$("sexTxt").value};
    emList.push(obj)
    fullTable(emList);
    $("addDiv").style.visibility="hidden";
}
function checkCode(){
    // emList.forEach(n=>{
    //     if (n.code==$("codeTxt").value){
    //         $(codeInfoSpan).innerHTML = "编号已存在";
    //         $(codeInfoSpan).style.color = "red";
    //     }
    // })
    return checkFormElement(/^[\d]{1,}$/,'codeTxt','codeInfoSpan','编号只能为数字');
}
function checkName(){
    return checkFormElement(/^[\u4e00-\u9fa5]{2,}$/,'emNameTxt','nameInfoSpan','姓名必须为2个字以上');
}
function checkMoney(){
    return checkFormElement(/^[\d]{4,}$/,'moneyTxt','moneyInfoSpan','工资为四位数以上');
}
function checkSex(){
    return checkFormElement(/^[男|女]{1}$/,'sexTxt','sexInfoSpan','性别必须是男或女');
}
function formSubmit() {
    var x=true;
    if (checkName() & checkCode() & checkMoney() & checkSex()) {
        emList.forEach(n=>{
            if (n.code==$("codeTxt").value){
                return x=false;
            }
        })
        if (x){
            add();
        }else {
            $("codeInfoSpan").innerHTML = "编号已存在";
            $("codeInfoSpan").style.color = "red";
        }

        //添加

    }
}
/**
 * 验证信息
 * @param rexp 对象
 * @param textId 文本id
 * @param spanId 提示信息id
 * @param errorInfo 错误信息
 * @returns {boolean}
 */
function checkFormElement(rexp,textId,spanId,errorInfo) {
    if (rexp.test($(textId).value)) {


        $(spanId).innerHTML = "验证通过";
        $(spanId).style.color = "green";
        return true;
    } else {
        $(spanId).innerHTML = errorInfo;
        $(spanId).style.color = "red";
        return false;
    }
}
/**
 * 按ID查询
 * @param code 工号
 */
function findById(code){
    //按工号查找员工对象
    var emObj = emList.find(n=> n.code==code);
    //将员工信息赋值给网页元素
    $("codeSpan").innerHTML=emObj.code;
    $("nameSpan").innerHTML=emObj.name;
    $("updateMoneyTxt").value=emObj.money;
    $("sexSpan").innerHTML=emObj.sex;
    $("updateDiv").style.visibility="visible"
}

function update(){
    var emObj = emList.find(n =>n.code==$("codeSpan").innerHTML);
    emObj.money=parseInt($("updateMoneyTxt").value);
    fullTable(emList);
    $("updateDiv").style.visibility="hidden";
}
/**
 * 按ID得到对象
 * @param id
 * @returns {HTMLElement}
 */
function $(id) {
    return document.getElementById(id)
}